#ifndef GTIME_H
#define GTIME_H

#pragma once

#include <QDate>
#include <QElapsedTimer>
#include <QTimeZone>

namespace ns_yht
{

    class GTime
    {
    public:
        GTime();

        static void init();

        /**
         * @brief 设置当前时间，秒
         *
         * @param ctime
         */

        static void setUtcTime(qint64 utime, qint64 offset);
        static void setUtcTime(qint64 utime);

        /**
         * @brief 获取当前时间，秒
         *
         * @return qint64
         */
        static qint64 getUtcTime_s();
        static QDateTime getLocalTime();
        static QDateTime getLocalTimeFromUtc(qint64 time);

        static QDateTime getUtcTime();

        /**
         * @brief 获取报文生成时的时间
         *
         * @param sec 报文生成时的秒，utc
         * @return qint64
         */
        static qint64 getMsgTime(int sec);

    private:
        static QElapsedTimer elapsedAfterTimeRefreshed;
        static QDateTime currentTime;
    };

} // namespace ns_yht

#endif